home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1995 April / Internet Tools.iso / infoserv / gopher / Gopher_Conference_94 / Papers / SQLEvents.Z / SQLEvents
Encoding:
Text File  |  1994-04-20  |  11.0 KB  |  372 lines

  1. City
  2.  
  3. ╖    Stateid    
  4.  
  5. ╖    Cityid    
  6.  
  7. ╖    City
  8.  
  9.  
  10.  
  11.  
  12. State
  13.  
  14. ╖    Stateid
  15.  
  16. ╖    Statename
  17. Building
  18.  
  19. ╖    Buildingid
  20.  
  21. ╖    cityid
  22.  
  23. ╖    building
  24.  
  25. ╖    address
  26.  
  27. ╖    postalcode
  28. Location
  29.  
  30. ╖    Loccode
  31.  
  32. ╖    Buildingid
  33.  
  34. ╖    Room
  35. Events
  36.  
  37. ╖    eventid
  38.  
  39. ╖    Title
  40.  
  41. ╖    Category
  42.  
  43. ╖    Costlevel
  44.  
  45. ╖    Costdesc
  46.  
  47. ╖    Loccode
  48.  
  49. ╖    Moreinfo
  50. Eventtimes
  51.  
  52. ╖    Eventid
  53.  
  54. ╖    Edate
  55.  
  56. ╖    Time
  57.  
  58. ╖    Length
  59. Eventinfo
  60.  
  61. ╖    Eventid
  62.  
  63. ╖    About
  64. Entity Relationship Diagram for the 
  65. Events and Locations Database
  66. A Gopher Events Database 
  67. using Sqlgopher.
  68.  
  69. Paul Lindner
  70.  
  71. In this paper we describe the implementation of a database of Events. The data is stored in an Oracle SQL database. 
  72. Access to this database (additions, deletions, browsing and searching) is done using Gopher clients. A special Gopher to 
  73. SQL gateway provides the necessary glue to bind it all together.
  74.  
  75. April 13, 1994
  76.  
  77. 1.0    Introduction
  78.  
  79. At one time the University of Minnesota had a centralized 
  80. list of upcoming events on campus, a secretary in the Uni-
  81. versity Relations office typed them all up and ran an ad in 
  82. the student newspaper. Due to budget cuts this labor inten-
  83. sive and expensive procedure was discontinued in 1991.
  84.  
  85. The need for a centralized list of events was still there 
  86. however. Thus, in fall 1992 Distributed Computing Ser-
  87. vices started offering organizations on campus the oppor-
  88. tunity to post events on a centralized gopher server using 
  89. the FTP file transfer protocol.
  90.  
  91. This scheme worked fairly well: it offered a central repos-
  92. itory for people to store events, the cost was low (all data 
  93. entry was done by the event sponsors) and the full text 
  94. indexing was sufficient for searching.
  95.  
  96. There were some problems with this approach however. 
  97. You could only browse the list of events in one way, sorted 
  98. by event sponsor. Event entries were inconsistent despite 
  99. specific instructions given to the event sponsors. The full 
  100. text search was inconsistent, you couldn't separate out 
  101. events based on cost, location or category very easily. 
  102. Using FTP to add data was cumbersome at best.
  103.  
  104. Starting in spring 1994 we're starting a new, more sophis-
  105. ticated central repository of events. The new system offers 
  106. the following features: 
  107.  
  108. ╖    Events can be sorted by Date, Location, Category, or 
  109. Price.
  110.  
  111. ╖    Online adding of events using Gopher+ forms.
  112.  
  113. ╖    Sophisticated form based searches.
  114.  
  115. The events are stored in an Oracle SQL based database. 
  116. This allows for high consistency and quick access. A 
  117. gopher to SQL gateway permits access to the database 
  118. using the Gopher protocol.
  119.  
  120. 2.0    Why an Events Database?
  121.  
  122. A campus/metropolitan wide events database brings the 
  123. community many benefits:
  124.  
  125. ╖    Event goers can browse and search for events of inter-
  126. est more easily than poring through the student news-
  127. paper and a pile of flyers.
  128.  
  129. ╖    Event schedulers can find opportunities for collabora-
  130. tion with other organizations.
  131.  
  132. ╖    Event schedulers can plan events so they don't coin-
  133. cide with other events.
  134.  
  135. ╖    Information dissemination is the key to getting com-
  136. muter students involved in their campus community; 
  137. the University of Minnesota doesn't have the benefit of 
  138. being a small `college town.' Thus the database helps 
  139. foster a sense of student community on a large campus.
  140.  
  141. 3.0    The Database
  142.  
  143. The database consists of two major portions, the Locations 
  144. database, and the Events database. Both portions are inte-
  145. gral to having a well managed events database.
  146.  
  147. 3.1    Locations
  148.  
  149. The Locations database contains information about vari-
  150. ous venues where an event occurs, such as the Building 
  151. name, Room name/number, street address, postal code, 
  152. etc.
  153.  
  154. By having a very accurate locations database people can 
  155. search the database for events that are located in a specific 
  156. areas. For instance, you could search for events "nearby" 
  157. that are in the local postal/zip code. Or, you could browse 
  158. by state, city, building, and then room.
  159.  
  160. 3.2    Events
  161.  
  162. The Events database contains information about the actual 
  163. event, such as the title, category, cost, contacts for more 
  164. information, date, time, length, and description, etc.
  165.  
  166. You can browse the Events portion of the database in 
  167. many ways. You can browse by the category of events, or 
  168. by date. A special feature allows you to get a listing of all 
  169. the events for the current day, and the week ahead.
  170.  
  171. There are many ways to search the events database. The 
  172. database is keyword indexed, so you can find events that 
  173. have a certain word in their description. Or, you can fill 
  174. out a form that lets you find events with a high degree of 
  175. accuracy. This form allows you to specify the exact 
  176. matches you want for any of the fields in the database. For 
  177. example, you could search the database for all events that 
  178. cost less than $5, are in the category `CONCERT' and are 
  179. in the zip code `55455'. This search can be put on a menu 
  180. item if one wishes. (You might name this item `Cheap 
  181. Concerts on the Minneapolis Campus')
  182.  
  183. 4.0    A Tour of the Database
  184.  
  185. Let's follow the travels of a hypothetical student named 
  186. George. George is bored. He has a bundle of cash burning 
  187. a hole in his pocket. He wants to do something.
  188.  
  189. So George fires up his SLIP connection and gets con-
  190. nected to the U of M network and launches his favorite 
  191. gopher client, Turbogopher for his Macintosh.
  192.  
  193. He gets a screen like this:
  194.  
  195. FIGURE 1.    Getting Into Gopher
  196.  
  197. George is one smart dude, so he uses his built in bookmark 
  198. to access the Database of events. He then gets a number of 
  199. choices. He can browse the database by type, location or 
  200. date or he can search for a specific event.
  201.  
  202. FIGURE 2.    Starting Screen for the Events Database
  203.  
  204. George can quickly browse the Events for Today items. 
  205. They make great bookmarks, since they change every day. 
  206. The first item returns the items listed in a directory, this is 
  207. best for browsing. The second item is a file containing all 
  208. the events for the day. This is handy for printing out.
  209.  
  210. George is looking to the weekend however, so he selects 
  211. "Events for the next 7 days".
  212.  
  213. FIGURE 3.    Events for the Next 7Days
  214.  
  215. And, lo and behold, he sports "Saturday Night Fever."! 
  216. George notices that there are two showings coming up, so 
  217. he clicks on the item and gets the description of the event:
  218.  
  219. FIGURE 4.    Saturday Night Fever Event
  220.  
  221. Cool! George gets his leisure suit ready for the cleaners 
  222. and looks further for something later in the week to 
  223. do.This time he knows that there's a performance at 
  224. Northrup that he wants to see, so he selects the Multiple 
  225. field search and searches for the Building Northrup and 
  226. the category DANCE.    
  227.  
  228. FIGURE 5.    Multiple Field Search
  229.  
  230. Then he gets a list of items that match his specified crite-
  231. ria, all DANCE events in buildings named Northrup. 
  232.  
  233. FIGURE 6.    Dance Events at Northrup
  234.  
  235. George looks through the items there and finds out that the 
  236. Miami City Ballet is playing for the low low price of 
  237. $16.50.
  238.  
  239.  
  240.  
  241. 5.0    Event and Location Data 
  242. Management 
  243.  
  244. A number of forms are defined for adding data to the 
  245. events database. The first form is for adding a Building/
  246. room to the list of locations. 
  247.  
  248. The gateway software does some intelligent checks to 
  249. insure that the city is in the database and checks for 
  250. matches in the database.
  251.  
  252. FIGURE 7.    Adding a New Location    
  253.  
  254. The second form is used to enter information about the 
  255. event. Again, a number of consistency checks are done.
  256.  
  257. FIGURE 8.    Adding a New Event
  258.  
  259. For events that have more than one showing (movies, 
  260. plays, etc.) we have another form for adding a time to a 
  261. current event. This form can be used as many times as nec-
  262. essary to add Show Times to an existing event.
  263.  
  264. FIGURE 9.    Adding an Additional Date and Time
  265.  
  266. 6.0    Future plans
  267.  
  268. The Locations database will eventually interface with a 
  269. database of Maps and Coordinates, allowing one to 
  270. browse locations graphically. In the future this database 
  271. might contain three dimensional renderings of geography.
  272.  
  273. Currently the Events database is geared towards singular 
  274. events (i.e. events that occur only once or twice.) This is 
  275. because we store the beginning time and length in a table. 
  276. This is inefficient for repeating events such as long run-
  277. ning movies, plays and art exhibits. A separate database or 
  278. redesign may be required for these events.
  279.  
  280. Another database being considered is a `Personnel' data-
  281. base. People could use this to create their own personal 
  282. schedules. This would also allow you to `sign' up for an 
  283. event, and browse a list of attendees for an event.
  284.  
  285. A rating system for events could be established, allowing 
  286. someone to `vote' for a specific event. You could then 
  287. search for highly rated events. 
  288.  
  289. 7.0    Technical Details
  290.  
  291. 7.1    Internet Gopher and the Gopher Protocol
  292.  
  293. Internet Gopher is an information system used to publish 
  294. and organize information on servers distributed across the 
  295. Internet. Initially developed at the University of Minne-
  296. sota in early 1991, it has spread to over 4800 sites world-
  297. wide as of December 1993.
  298.  
  299. The Gopher system is a client-server system that can be 
  300. used to build a Campus Wide Information System 
  301. (CWIS). Clients, which browse and search information are 
  302. available for most major platforms (Macintosh, DOS, 
  303. Windows, Unix, VMS, MVS, VM/CMS, OS/2). Servers, 
  304. which translate and publish information, are also available 
  305. for all of the platforms mentioned above.
  306.  
  307. This client-server architecture uses the Internet Gopher 
  308. Protocol. The Gopher protocol has been described as "bru-
  309. tally simple." It is based on a web/tree metaphor of files 
  310. and directories. Its basic primitives are a list directory 
  311. transaction, a retrieve file transaction and a search for 
  312. directory entries transaction.
  313.  
  314. 7.2    SQL Database Details. Entities and 
  315. Relationships
  316.  
  317. The following page contains a diagram of the tables con-
  318. tained in the database. Each table is represented by it's 
  319. name followed by a bulleted list of the columns. Arrows 
  320. connect columns that reference other tables.
  321.  
  322. A number of views are defined to make searching the data-
  323. base easier. The view Eventview contains the most popular 
  324. fields for searching and joins the location, building, 
  325. events, eventtimes, and eventinfo tables together. An 
  326. Eventinserter view is used to insert items into the data-
  327. base. The Eventplace view joins together the location, 
  328. building, and city.
  329.  
  330. A number of indexes are also created, to increase the per-
  331. formance of searches.
  332.  
  333. 7.3    The Gateway Software
  334.  
  335. The software that brings allows access to the database is 
  336. Gophersql. Gophersql was developed by the University of 
  337. Minnesota to allow Internet Gopher Clients access to a 
  338. SQL database such as Oracle or Sybase.
  339.  
  340. The SQL gateway allows the Gopher Client to:
  341.  
  342. ╖    View the tables of a database as a Gopher directory
  343.  
  344. ╖    View the columns of a given table as a Gopher direc-
  345. tory
  346.  
  347. ╖    View the contents of a column as a Gopher directory
  348.  
  349. ╖    View records as formatted text.
  350.  
  351. ╖    View/import records as tab-separated-values
  352.  
  353. ╖    Add records to a table.
  354.  
  355. ╖    Search the table by filling out a Gopher+ form.
  356.  
  357. The gateway is available via anonymous ftp from 
  358.  
  359. boombox.micro.umn.edu
  360.  
  361. via anonymous ftp from the directory
  362.  
  363. /pub/gopher/Unix/gopher-gateways/gophersql
  364.  
  365. The files used to construct this events database are 
  366. included in the distribution.
  367.  
  368. 7.4    Accessing the Gateway
  369.  
  370. To access the Events database you can connect to the 
  371. machine arcwelder.micro.umn.edu on port 70.
  372.